<!DOCTYPE html>
<html lang="en">
<head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
</head>
<body>
      <script>
            // 我上头有人;
            function Father(){
            }
            Father.prototype.init = function(){
                  console.log("这是father里面的功能")
            }
            Father.prototype.show = function(){
                  console.log("这是father里面的功能")
            }

            function Son(){}

            // 因为 father 的实例对象有指针指向 Father.prototype 那么此时我可以吧 son原型里面的原型指针替换成 指向fahter原型对象的原型指针;

            // 我们可以直接把Son 的原型对象替换成 Father 的实例对象;
            Son.prototype = new Father();
            Son.prototype.show = function(){
                  console.log("这是son里面的功能")
            }
            // 原型继承的方法，不要在构造函数里面写东西;
            var son = new Son();
            son.init();

            // 在子类原型对象上 new 父类的构造函数即可完成原型继承;
            son.show();
            // 因为Son的原型对象方法show距离更近，所以我们会优先访问到 Son 原型上的show方法;
            
      </script>
</body>
</html>